1. Field of the Invention
The present invention relates to a communication network composed of a plurality of nodes, each of which is provided with data transmission and reception functions conforming to IEEE 1394-1995 Serial Bus Standard (hereafter, referred to as IEEE1394) and, in particular, to a data communication method allowing data communication among these nodes according to communication protocols such as TCP/IP (Transmission Control Protocol/Internet Protocol).
2. Description of the Related Art
The IEEE 1394 standard defined in 1995 is an international standard for implementing a cost-effective and high-speed digital interface. The IEEE 1394 serial bus provides high-speed data transport of several hundreds of megabits per second and therefore enables real-time transport required for digital video data transmission. Therefore, the IEEE 1394 digital interface is caused to provoke widespread attention as a digital interconnect for both computer peripherals and consumer electronics including digital video cameras and digital television sets.
There has been known so-called xe2x80x9cIP over 1394xe2x80x9d defined by IETF (Internet Engineering Task Force), which can support the transport of Internet Protocol (TP) data over a communication network conforming to the IEEE1394 standard. The IP-over-1394 system provides necessary methods for transmitting and receiving IP unicast data, IP multicast data, and IP broadcast data. More specifically, in the case of IP unicast, Asynchronous packets of IEEE1394 are used for communication. In the cases of IP multicast and IP broadcast, an Asynchronous-Stream channel is used for communication.
Further, the IP-over-1394 system provides MCAP (Multicast Channel Allocation Protocol) which defines an allocation method of an Asynchronous Stream channel for multicast. More specifically, in the case of multicast channel allocation, a first node which intends sending data sends a message for querying whether the Asynchronous-Stream channel for multicast has been allocated in the network. When receiving no reply to the query message, the first node requests a new channel from IRM (Isochronous Resource Manager) defined in the IEEE 1394. After the channel has been allocated to the first node, the first node uses the allocated channel to send multicast data.
Thereafter, in the case where a second node starts sending or receiving multicast data, the second node sends a query message for querying whether the Asynchronous-Stream channel for multicast has been allocated in the network. When receiving the query message from the second node, the first node sends a message indicating correspondence information between multicast addresses and the allocated channel to the second node. When receiving the correspondence information message, the second node uses the designated channel for communication.
In the case where the first node completes the data sending, the first node sends a channel control transfer message including the correspondence information between the multicast addresses and the allocated channel. If a third node other than the first and second nodes which is sending data to nodes of the same multicast addresses is received the channel control transfer message, then the third node sends a message indicating the correspondence information between the multicast addresses and the allocated channel and inherits the channel control from the first node. In this case, the first node terminates the communication with doing nothing. If there is a no node inheriting the channel control like the third node, then the channel allocated to the first node is deallocated by the IRM before the first node terminates the communication.
As described above, the node that sends multicast packets has a channel allocated thereto by the IRM. However, a sufficient bandwidth for data communication is not always reserved. In the case of data communication requiring real-time processing such as voice and moving-picture transmission of a television conference system, it is difficult to transmit voice and moving-picture data in real time when the network falls into congestion.
In the system composed of a plurality of nodes such as a television conference system, there are possibly two cases: one case where only one of the nodes sends data at all times; and the other case where all the nodes can concurrently send data. In the former case, it is necessary to reserve the widest one of the bandwidths required for the nodes. In the latter case, it is necessary to reserve a total of bandwidths required for all the nodes.
In the television conference system, voice communication is an example of the former case because only one node talks when N nodes are in conversation. Therefore, the bandwidth required for voice communication of only one node may be reserved. In the case where the nodes have different voice qualities, it is necessary to reserve the widest one of the bandwidths required for the nodes. Moving-picture communication is an example of the latter case because video data is always transmitted from each of the nodes. Therefore, it is necessary to reserve a total of bandwidths required for video communications of all the nodes.
It is possible to provide a node with a means for reserving a bandwidth required for the node itself. However, such a means cannot cope with a case where two or more nodes send data with different required bandwidths and different uses of reserved bandwidths.
An object of the present invention is to provide a data communication method allowing real-time communications among a plurality of nodes participating in a session even in the event of network congestion.
Another object of the present invention is to provide a data communication method allowing real-time communications among a plurality of nodes requiring different bandwidths and different uses of reserved bandwidths.
According to the present invention, in the case where a plurality of nodes participate in a session such that two or more nodes do not concurrently send data, a session management node which manages a channel and a bandwidth thereof for the session is determined and reserves a maximum bandwidth among bandwidths requested by the nodes participating in the session by accessing the Isochronous Resource Manager, to allow communications by sharing the maximum bandwidth among nodes which participate in the session and send data.
A first node which intends sending data in the session broadcasts a first query message for querying whether a channel and a bandwidth for the session have been reserved. When the first node is an initial node to send data, the first node receives no response to the first query message. In this case, the first node reserves a channel and a first bandwidth needed by the first node for the session. Thereafter, the first node becomes the session management node and sends data using an isochronous stream through the reserved channel.
When receiving a second query message for querying whether a channel and a bandwidth for the session have been reserved, from a second node other than the session management node, wherein the second query message includes a second bandwidth needed by the second node, the session management node compares the second bandwidth requested by the second node with a reserved bandwidth which has been reserved for the session in the network.
When the second bandwidth is broader than the reserved bandwidth, the session management node reserves a differential bandwidth between the second bandwidth and the reserved bandwidth accessing the Isochronous Resource Manger to reserve the maximum bandwidth among bandwidths requested by the nodes participating in the session. Then, the session management node broadcasts a report message including session identifying information and the maximum bandwidth which is sharable. In this manner, the maximum bandwidth which has been reserved is used as a shared bandwidth by all the nodes participating in the session.
As an example, in the case of a third node participating in the session only to receive data, a third query message is broadcast for querying whether a channel and a bandwidth for the session have been reserved. When receiving the third query message, the session management node broadcasts a second report message indicating the channel and the maximum bandwidth for the session. When receiving the second report message, the third node starts receiving data through the channel designated by the second report message received from the session management node.
Further, when the fourth node withdraws from the session, the fourth node other than the session management node terminates communication. However, when the session management node withdraws from the session, the session management node broadcasts a control transfer message for transferring control of the channel and the bandwidth for the session the control transfer message including information of the channel and the maximum bandwidth. When receiving no response to the control transfer message, the session management node returns the maximum bandwidth which has been reserved to the Isochronous Resource Manager to terminate communication. When receiving a response to the control transfer message from a fifth node continuing to send data in the session, the session management node terminating the communication. Therefore, in the case where a node terminates communication, the reserved bandwidth can be deallocated, resulting in improved efficient use of bandwidth of the network.
The fifth node broadcasts a control inheritance message for inheriting the control of the channel and the bandwidth for the session in response to the control transfer message received from the session management node. When receiving the control inheritance message from a sixth node, the fifth node determines whether the fifth node inherits the control of the channel and the bandwidth for the session depending on a comparison between node identification numbers of the fifth node and the sixth node. More specifically, only one node having a maximum node identification number among nodes each broadcasting the control inheritance message inherits the control of the channel and the bandwidth for the session so that the only one node becomes the session management node. Therefore, a control inheritance conflict can be avoided in the case where a plurality of nodes intend inheriting the control of the channel and the bandwidth for the session.
As another example, the session management node periodically broadcasts a third report message indicating the channel and a first bandwidth needed by the session management node. When there is a seventh node receiving the third report message, the seventh node compares a seventh bandwidth for the session needed by the seventh node with the first bandwidth needed by the session management node. When the seventh bandwidth is broader than the first bandwidth, the seventh node broadcasts a fourth query message including information of the seventh bandwidth, when the session management node receives at least one fourth query message, the session management node compares the reserved bandwidth which has been reserved with a maximum received bandwidth selected from at least one fourth query message received. When the maximum received bandwidth is narrower than the reserved bandwidth, the session management node returns a differential bandwidth between the maximum received bandwidth and the reserved bandwidth to the Isochronous Resource Manager. When a node needing the maximum received bandwidth withdraws from the session, the session management node deallocates the differential bandwidth by accessing the Isochronous Resource Manager.
Assuming that a size of Subaction Gap defined in IEEE1394 is SG, a size of Arbitration Reset Gap defined in IEEE1394 is ARG, a maximum size of a frame allowed to be sent in Asynchronous Stream defined in IEEE1394 is M, and a number of nodes connected to the network is N, a remaining amount of bandwidth in the Isochronous Resource Manager is B, when the remaining bandwidth B is equal to or smaller than (SG+M)xc3x97N+ARG, each node performs data transmission using an asynchronous stream instead of an isochronous stream, allowing data to be sent a plurality of times in one cycle time defined in IEEE1394.
According to another aspect of the present invention, in a network where a plurality of nodes participate in a session such that two or more nodes can send data concurrently, a session management node reserves a first bandwidth needed by the session management node by accessing the Isochronous Resource Manager. Each of the nodes other than the session management node reserves a bandwidth needed by the node by accessing the Isochronous Resource Manager, to allow communications such that a dedicated bandwidth is allocated to the node.
In the case of a first node which intends sending data in the session, the first node broadcasts a first query message for querying whether a channel for the session have been reserved. When the channel for the session have not been reserved in the network, the first node reserves a channel by accessing the Isochronous Resource Manager, so that the first node becomes the session management node.
In the case of a second node participating in the session other than the session management node, the second node broadcasts a query message for querying whether a channel for the session have been reserved. The session management node broadcasts a report message indicating the channel for the session and the reserved bandwidth starts of xe2x80x9coccupiedxe2x80x9d in response to the query message received from the node. The second node reserves the bandwidth needed by the second node by accessing the Isochronous Resource Manager, to send data through the channel designated by the report message received from the session management node. In this manner, the session management node reserves only the channel and the bandwidth is reserved by each node sending data. Therefore, the respective bandwidths needed by all the nodes are reserved.
A third node participating in the session only to receive data broadcasts a third query message for querying whether a channel for the session have been reserved. The session management node broadcasts a second report message indicating the channel for the session in response to the third query message. The third node starts receiving data through the channel designated by the second report message received from the session management node.
When the third node withdraws from the session, the third node terminates communication. When a fourth node participating in the session to send data withdraws from the session, the fourth node returns a bandwidth reserved for the fourth node to the Isochronous Resource Manager to terminate communication. The session management node broadcasts a control transfer message for transferring control of the channel for the session when the session management node withdraws from the session. When receiving no response to the control transfer message, the session management node returns the channel and the bandwidth which has been reserved to the Isochronous Resource Manager to terminate communication. When receiving a response to the control transfer message from a fifth node continuing to send data in the session, the session management node returns the bandwidth which has been reserved to the Isochronous Resource Manager to terminate communication.
The fifth node broadcasts a control inheritance message for inheriting the control of the channel for the session in response to the control transfer message received from the session management node. When receiving the control inheritance message from a sixth node, the fifthe node determines whether the fifth node inherits the control of the channel for the session depending on a comparison between node identification numbers of the fifth node and the sixth node. More specifically, only one node having a maximum node identification number amount nodes each broadcasting the control inheritance message inherits the control of the channel for the session so that the only one node becomes the session management node. Therefore, a control inheritance conflict can be avoided in the case where a plurality of nodes intend inheriting the control of the channel for the session.
As described above, a data communication method according to the present invention ensures a necessary bandwidth, allowing real-time communications among a plurality of nodes participating in a session even in the event of network congestion. Further, real-time communications can be achieved among a plurality of nodes requiring different bandwidths and different uses of reserved bandwidths.